#include <vector>
#include <iostream>
#include <Car.hpp>
#include <map>

#ifndef _CLASSUNIVERSEWORLD_
#define _CLASSUNIVERSEWORLD_

namespace Universe {

class World
{
public:
	virtual ~World();
    World();
    
    virtual Universe::Body* getStaticBody(unsigned int index) = 0;
    virtual Universe::Body* getDynamicBody(unsigned int index) = 0;
    virtual Universe::Car* getCar(unsigned int index) = 0;
    
    unsigned int getStaticBodiesQty();
    unsigned int getDynamicBodiesQty();
    unsigned int getCarsQty();

    virtual Matrix4f* getMatrices() = 0;
	virtual void setMatrices(Matrix4f* matrices) = 0;
    
protected:
    std::vector< Universe::Body* > StaticBody;
    std::vector< Universe::Body* > DynamicBody;
    std::vector< Universe::Car* > car;
};

}//namespace Universe

#endif
